#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
//查找数字7
//带回下标
//void find_k(int arr[][3], int* cow, int* column, int k)
//{
//	int x = 0;
//	int y = *column - 1;
//	int flag = 0;
//	while (x <= *cow - 1 && y >= 0)
//	{
//		if (arr[x][y] > k)
//		{
//			y--;
//		}
//		else if (arr[x][y] < k)
//		{
//			x++;
//		}
//		else
//		{
//			*cow = x;
//			*column = y;
//			break;
//		}
//	}
//}
//int main()
//{
//	int arr[][3] = { 1,2,3,4,5,6,7,8,9 };
//	int k = 56;
//	int x = 3;
//	int y = 3;
//	find_k(arr, &x, &y, k);
//	if (x == 3 && y == 3)
//	{
//		printf("没有找到");
//	}
//	else
//	{
//		printf("找到了，其下标为%d %d\n", x, y);
//	}
//	
//	return 0;
//}


//int find_k(int arr[][3], int* cow, int* column, int k)
//{
//	int x = 0;
//	int y = *column - 1;
//	while (x <= *cow - 1 && y >= 0)
//	{
//		if (arr[x][y] > k)
//		{
//			y--;
//		}
//		else if (arr[x][y] < k)
//		{
//			x++;
//		}
//		else
//		{
//			*cow = x;
//			*column = y;
//			return 1;
//		}
//	}
//		return 0;
//}
//int main()
//{
//	int arr[][3] = { 1,2,3,4,5,6,7,8,9 };
//	int k = 56;
//	int x = 3;
//	int y = 3;
//	int ret=find_k(arr, &x, &y, k);
//	if (ret!=1)
//	{
//		printf("没有找到");
//	}
//	else
//	{
//		printf("找到了，其下标为%d %d\n", x, y);
//	}
//
//	return 0;
//}

//实现一个函数，可以左旋字符串中的k个字符。
//例如：
//ABCD左旋一个字符得到BCDA
//ABCD左旋两个字符得到CDAB
//字母向左移动，最左边的字母移动到右侧
//设计一个函数，函数有两个参数，一个用来传递字符串的首地址，
//一个用来传递需要移动字符的个数
//ABCD
//BCDA
//CDBA
//借助一个变量来过渡

//一次旋转可以理解为先将首字母存储起来，之后的字母依次替换掉它之前的字母，
//再将首字母放置到尾字母处

//void spin(char* p,int length,int shift_number)
//{
//	char temp='0';
//	int i = 0;
//	int j = 0;
//	for (j=0;j<shift_number;j++)
//	{
//		temp = *p;
//		for (i = 0; i < length - 1; i++)
//		{
//			*(p + i) = *(p + i + 1);
//		}
//		*(p + length-1) = temp;
//	}
//}
//int main()
//{
//	char string[10] = "0";
//	gets(string);
//    //gets（）函数的作用:它读取整行输入，直至遇到换行符，
//    //然后丢弃换行符，储存其余字符，并在其末尾添加一个空字符使其成为一个字符串。
//	int length = strlen(string);
//	int shift_number = 7;
//	shift_number %= 4;
//	spin(string,length,shift_number);
//	printf("%s\n",string);
//	return 0;
//}

//逆序左边，逆序右边  整体逆序
//如何逆序字符串

//首字母和尾字母交换，依次向中间元素靠拢
void rever(char* p, int number)
{
	char* left = p;
	char* right = p + number - 1;
	while (left < right)
	{
		//交换元素
		char temporary = '0';
		temporary = *left;
		*left = *right;
		*right = temporary;
		left++;
		right--;
	}
}
int main()
{
	char string[10] = "0";
	gets(string);
	int length = strlen(string);
	int shift_number = 3;
	rever(string, shift_number);
	rever(string, length - shift_number);
	rever(string,length);
	printf("%s",string);
	return 0;
}